//杨辉三角
class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ret = new ArrayList<>();
        //1.先处理第一行
        List<Integer> list = new ArrayList<>();
        list.add(1);
        ret.add(list);
        //2.从第二行开始计算每个list当中的数据
        for(int i = 1;i < numRows;i++){
            //3.准备当前行数据
            List<Integer> curRow = new ArrayList<>();
            //4.准备当前行第一个数据
            curRow.add(1);
            //5.准备当前行中间数据
            List<Integer> preRow = ret.get(i-1);
            for(int j = 1;j < i;j++){
                int val = preRow.get(j)+preRow.get(j-1);
                curRow.add(val);
            }
            //6.准备当前行第一个数据
            curRow.add(1);
            //7.把数据加到二维数组中
            ret.add(curRow);

        }
        return ret;
    }
}